<?php

/**
 * Contains information about the output stream.
 *
 * ---
 *
 * Содержит информацию о выводимых графических элементах.
 */
interface IDisplayList {
  /**
   * Adds a new element to the end of display list
   * 
   * @param IDisplayListElement $element element being added
   *
   * ---
   * 
   * Добавляет новый элемент в конец списка.
   *
   * IDisplayListElement $element добавляемый элемент
   */
  function addElement(IDisplayListElement $element);

  /**
   * Adds a new page to the end of page list
   * 
   * @param IPage $page page being added
   *
   * ---
   *
   * Добавляет новую страницу в конец списка
   *
   * IPage $page новая страница
   */
  function addPage(IPage $page);

  /**
   * @return IDisplayListElement[] list of visual elements to be rendered
   *
   * ---
   *
   * Возвращает список элементов, которые должны быть отрисованы.
   */
  function getElements();

  /**
   * @return IPage[] list of pages to be rendered
   *
   * ---
   *
   * Возвращает список страниц документа.
   */
  function getPages();
}

?>